﻿using SIIE_ERP.Codigo;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SIIE_ERP.BaseDatos.Bancos.Catalogos
{
    public class dbo_Cat_Moneda
    {
        #region Propiedades

        private string _RFC;
        private string _Usuario;

        #endregion
        
        #region Constructores

        public dbo_Cat_Moneda(string RFC, string Usuario)
        {
            this._RFC = RFC;
            this._Usuario = Usuario;
        }

        #endregion

        #region INSERT 

        public Respuesta Insert_Moneda(

            int Orden,
            string Clave,
            string Simbolo,
            string Nombre            
        )
        {
            try
            {
                string Query = @"INSERT INTO dbo_Cat_Moneda
                             (
                                Id_Moneda,
                                RFC,
                                Orden,
                                Clave,
                                Simbolo,
                                Nombre,
                                Activa,
                                Fecha_Alta,
                                Usuario_Alta,
                                Fecha_Mantto,
                                Usuario_Mantto
                             )
                             VALUES
                             (
                                IIF(DCount('*', 'dbo_Cat_Moneda') = 0, 1, DMax('Id_Moneda', 'dbo_Cat_Moneda') + 1),
                                '@@RFC',
                                @@Orden,
                                '@@Clave',
                                '@@Simbolo',
                                '@@Nombre',
                                1,                               
                                NOW(),
                                '@@Usuario_Alta',
                                NOW(),
                                '@@Usuario_Mantto'
                             )";

                Query = Query.Replace("@@RFC", this._RFC);
                Query = Query.Replace("@@Orden", Orden.ToString());
                Query = Query.Replace("@@Clave", Clave);
                Query = Query.Replace("@@Simbolo", Simbolo);
                Query = Query.Replace("@@Nombre", Nombre);
                Query = Query.Replace("@@Usuario_Alta", this._Usuario);
                Query = Query.Replace("@@Usuario_Mantto", this._Usuario);

                return SrvDB.ExecuteQuery_Insert(Query);
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }
        }

        #endregion

        #region SELECT

        public DataTable Get_Moneda_Por_Id(object Id)
        {

            string Query = "SELECT * FROM dbo_Cat_Moneda WHERE Id_Moneda = @@Id";
            Query = Query.Replace("@@Id", ((Int32)Id).ToString());

            return SrvDB.ExecuteQuery_Get(Query);
        }

        public DataTable Get_Moneda_Por_Nombre(string Nombre)
        {

            string Query = "SELECT * FROM dbo_Cat_Moneda WHERE Nombre = '@@Nombre' AND RFC = '@@RFC'";
            Query = Query.Replace("@@Nombre", Nombre);
            Query = Query.Replace("@@RFC", this._RFC);

            return SrvDB.ExecuteQuery_Get(Query);
        }

        public DataTable Get_Monedas()
        {
            string Query = "SELECT A1.*, A2.TipoCambio as TipoCambio " +
                           "FROM dbo_Cat_Moneda as A1 LEFT JOIN dbo_Cat_TipoCambio AS A2 ON A1.Id_Moneda = A2.Id_Moneda " +                           
                           "WHERE A1.RFC = '@@RFC'";

            Query = Query.Replace("@@RFC", this._RFC);

            return SrvDB.ExecuteQuery_Get(Query);
        }

        #endregion
    }
}
